Emberveil sourcegame/2006Scape Server/src/main/java/com/rs2/game/content/combat/range/RangeData.java
package com.rs2.game.content.combat.range;
import com.rs2.game.players.Player;
import static com.rs2.game.content.StaticItemList.*;
public class RangeData {
public final static int[] BOWS = { 9185,LONGBOW,OAK_LONGBOW,WILLOW_LONGBOW,MAPLE_LONGBOW,YEW_LONGBOW,MAGIC_LONGBOW,SHORTBOW,OAK_SHORTBOW,WILLOW_SHORTBOW,MAPLE_SHORTBOW,YEW_SHORTBOW,MAGIC_SHORTBOW,NEW_CRYSTAL_BOW,CRYSTAL_BOW_FULL,CRYSTAL_BOW_910,CRYSTAL_BOW_810,CRYSTAL_BOW_710,CRYSTAL_BOW_610,CRYSTAL_BOW_510,CRYSTAL_BOW_410,CRYSTAL_BOW_310,CRYSTAL_BOW_210,CRYSTAL_BOW_110,SEERCULL,KARILS_CROSSBOW,KARILS_XBOW_100,KARILS_XBOW_75,KARILS_XBOW_50,KARILS_XBOW_25
};
public final static int[] ARROWS = { BRONZE_ARROW,BRONZE_ARROWP,IRON_ARROW,IRON_ARROWP,STEEL_ARROW,STEEL_ARROWP,MITHRIL_ARROW,MITHRIL_ARROWP,ADAMANT_ARROW,ADAMANT_ARROWP,RUNE_ARROW,RUNE_ARROWP,BOLT_RACK,9140,9141,9142,9143,9144,9240,9241,9242,9243,9244,9245,BROAD_ARROWS,BROAD_ARROWS_4160,BROAD_ARROWS_4172
};
public final static int[] NO_ARROW_DROP = { NEW_CRYSTAL_BOW,CRYSTAL_BOW_FULL,CRYSTAL_BOW_910,CRYSTAL_BOW_810,CRYSTAL_BOW_710,CRYSTAL_BOW_610,CRYSTAL_BOW_510,CRYSTAL_BOW_410,CRYSTAL_BOW_310,CRYSTAL_BOW_210,CRYSTAL_BOW_110,KARILS_CROSSBOW,KARILS_XBOW_100,KARILS_XBOW_75,KARILS_XBOW_50,KARILS_XBOW_25
};
public final static int[] OTHER_RANGE_WEAPONS = { IRON_KNIFE,BRONZE_KNIFE,STEEL_KNIFE,MITHRIL_KNIFE,ADAMANT_KNIFE,RUNE_KNIFE,BLACK_KNIFE,BRONZE_DART,IRON_DART,STEEL_DART,MITHRIL_DART,ADAMANT_DART,RUNE_DART,BRONZE_JAVELIN,IRON_JAVELIN,STEEL_JAVELIN,MITHRIL_JAVELIN,ADAMANT_JAVELIN,RUNE_JAVELIN,BRONZE_THROWNAXE,IRON_THROWNAXE,STEEL_THROWNAXE,MITHRIL_THROWNAXE,ADAMNT_THROWNAXE,RUNE_THROWNAXE,TOKTZXILUL };
public static boolean usingCrystalBow(Player c) {
return c.playerEquipment[c.playerWeapon] >= NEW_CRYSTAL_BOW
&& c.playerEquipment[c.playerWeapon] <= CRYSTAL_BOW_110;
}
public static boolean usingBolts(Player c) {
return c.playerEquipment[c.playerArrows] >= 9130
&& c.playerEquipment[c.playerArrows] <= 9145
|| c.playerEquipment[c.playerArrows] >= 9230
&& c.playerEquipment[c.playerArrows] <= 9245;
}
public static boolean properBolts(Player c) {
return c.playerEquipment[c.playerArrows] >= 9140
&& c.playerEquipment[c.playerArrows] <= 9144
|| c.playerEquipment[c.playerArrows] >= 9240
&& c.playerEquipment[c.playerArrows] <= 9244;
}
public static boolean usingHally(Player c) {
switch (c.playerEquipment[c.playerWeapon]) {
case BRONZE_HALBERD:
case IRON_HALBERD:
case STEEL_HALBERD:
case BLACK_HALBERD:
case MITHRIL_HALBERD:
case ADAMANT_HALBERD:
case RUNE_HALBERD:
case DRAGON_HALBERD:
return true;
}
return false;
}
public static boolean usingDart(Player player) {
switch (player.playerEquipment[player.playerWeapon]) {
case BRONZE_DART:
case IRON_DART:
case STEEL_DART:
case MITHRIL_DART:
case ADAMANT_DART:
case RUNE_DART:
return true;
}
return false;
}
public static boolean usingLongbow(Player player) {
if (usingCrystalBow(player)) {
return true;
}
switch (player.playerEquipment[player.playerWeapon]) {
case LONGBOW:
case OAK_LONGBOW:
case WILLOW_LONGBOW:
case MAPLE_LONGBOW:
case YEW_LONGBOW:
case MAGIC_LONGBOW:
return true;
}
return false;
}
public static int correctBowAndArrows(Player c) {
if (usingBolts(c)) {
return -1;
}
switch (c.playerEquipment[c.playerWeapon]) {
case LONGBOW:
case SHORTBOW:
return BRONZE_ARROW;
case OAK_SHORTBOW:
case OAK_LONGBOW:
return IRON_ARROW;
case WILLOW_LONGBOW:
case WILLOW_SHORTBOW:
return STEEL_ARROW;
case MAPLE_LONGBOW:
case MAPLE_SHORTBOW:
return MITHRIL_ARROW;
case YEW_LONGBOW:
case YEW_SHORTBOW:
return ADAMANT_ARROW;
case MAGIC_LONGBOW:
case MAGIC_SHORTBOW:
if (c.playerEquipment[c.playerArrows] == RUNE_ARROW) {
return RUNE_ARROW;
} else if (c.playerEquipment[c.playerArrows] == BROAD_ARROWS_4172) {
return BROAD_ARROWS_4172;
}
case KARILS_CROSSBOW:
case KARILS_XBOW_75:
case KARILS_XBOW_50:
case KARILS_XBOW_25:
return BOLT_RACK;
}
return -1;
}
public static int getRangeStartGFX(Player c) {
switch (c.rangeItemUsed) {
case IRON_KNIFE:
return 220;
case BRONZE_KNIFE:
return 219;
case STEEL_KNIFE:
return 221;
case MITHRIL_KNIFE:
return 223;
case ADAMANT_KNIFE:
return 224;
case RUNE_KNIFE:
return 225;
case BLACK_KNIFE:
return 222;
case BRONZE_DART:
return 232;
case IRON_DART:
return 233;
case STEEL_DART:
return 234;
case MITHRIL_DART:
return 235;
case ADAMANT_DART:
return 236;
case RUNE_DART:
return 237;
case BRONZE_JAVELIN:
return 206;
case IRON_JAVELIN:
return 207;
case STEEL_JAVELIN:
return 208;
case MITHRIL_JAVELIN:
return 209;
case ADAMANT_JAVELIN:
return 210;
case RUNE_JAVELIN:
return 211;
case BRONZE_THROWNAXE:
return 42;
case IRON_THROWNAXE:
return 43;
case STEEL_THROWNAXE:
return 44;
case MITHRIL_THROWNAXE:
return 45;
case ADAMNT_THROWNAXE:
return 46;
case RUNE_THROWNAXE:
return 48;
case BRONZE_ARROW:
return 19;
case IRON_ARROW:
return 18;
case STEEL_ARROW:
return 20;
case MITHRIL_ARROW:
return 21;
case ADAMANT_ARROW:
return 22;
case RUNE_ARROW:
return 24;
case NEW_CRYSTAL_BOW:
case CRYSTAL_BOW_FULL:
case CRYSTAL_BOW_910:
case CRYSTAL_BOW_810:
case CRYSTAL_BOW_710:
case CRYSTAL_BOW_610:
case CRYSTAL_BOW_510:
case CRYSTAL_BOW_410:
case CRYSTAL_BOW_310:
case CRYSTAL_BOW_210:
case CRYSTAL_BOW_110:
return 250;
}
return -1;
}
public static int getRangeProjectileGFX(Player c) {
if (c.bowSpecShot > 0) {
switch (c.rangeItemUsed) {
default:
return 249;
}
}
if (c.playerEquipment[c.playerWeapon] == 9185) { //TODO magic numbwr rune cbow
return 27;
}
switch (c.rangeItemUsed) {
case IRON_KNIFE:
return 213;
case BRONZE_KNIFE:
return 212;
case STEEL_KNIFE:
return 214;
case MITHRIL_KNIFE:
return 216;
case ADAMANT_KNIFE:
return 217;
case RUNE_KNIFE:
return 218;
case BLACK_KNIFE:
return 215;
case BRONZE_DART:
return 226;
case IRON_DART:
return 227;
case STEEL_DART:
return 228;
case MITHRIL_DART:
return 229;
case ADAMANT_DART:
return 230;
case RUNE_DART:
return 231;
case BRONZE_JAVELIN:
return 200;
case IRON_JAVELIN:
return 201;
case STEEL_JAVELIN:
return 202;
case MITHRIL_JAVELIN:
return 203;
case ADAMANT_JAVELIN:
return 204;
case RUNE_JAVELIN:
return 205;
case TOKTZXILUL:
return 442;
case BRONZE_THROWNAXE:
return 36;
case IRON_THROWNAXE:
return 35;
case STEEL_THROWNAXE:
return 37;
case MITHRIL_THROWNAXE:
return 38;
case ADAMNT_THROWNAXE:
return 39;
case RUNE_THROWNAXE:
return 40;
case BRONZE_ARROW:
return 10;
case IRON_ARROW:
return 9;
case STEEL_ARROW:
return 11;
case MITHRIL_ARROW:
return 12;
case ADAMANT_ARROW:
return 13;
case RUNE_ARROW:
return 15;
case BOLT_RACK:
return 27;
case NEW_CRYSTAL_BOW:
case CRYSTAL_BOW_FULL:
case CRYSTAL_BOW_910:
case CRYSTAL_BOW_810:
case CRYSTAL_BOW_710:
case CRYSTAL_BOW_610:
case CRYSTAL_BOW_510:
case CRYSTAL_BOW_410:
case CRYSTAL_BOW_310:
case CRYSTAL_BOW_210:
case CRYSTAL_BOW_110:
return 249;
}
return -1;
}
public static int getProjectileSpeed(Player c) {
return 70;
}
public static int getProjectileShowDelay(Player c) {
switch (c.playerEquipment[c.playerWeapon]) {
case IRON_KNIFE:
case BRONZE_KNIFE:
case STEEL_KNIFE:
case MITHRIL_KNIFE:
case ADAMANT_KNIFE:
case RUNE_KNIFE:
case BLACK_KNIFE:
case BRONZE_DART:
case IRON_DART:
case STEEL_DART:
case MITHRIL_DART:
case ADAMANT_DART:
case RUNE_DART:
case BRONZE_JAVELIN:
case IRON_JAVELIN:
case STEEL_JAVELIN:
case MITHRIL_JAVELIN:
case ADAMANT_JAVELIN:
case RUNE_JAVELIN:
case BRONZE_THROWNAXE:
case IRON_THROWNAXE:
case STEEL_THROWNAXE:
case MITHRIL_THROWNAXE:
case ADAMNT_THROWNAXE:
case RUNE_THROWNAXE:
case KARILS_CROSSBOW:
case 9185: //TODO Rune cbow Magic Number
case KARILS_XBOW_75:
case KARILS_XBOW_50:
case KARILS_XBOW_25:
return 15;
default:
return 5;
}
}
public static boolean fullVoidRange(Player c) {
return c.playerEquipment[c.playerHat] == 11664
&& c.playerEquipment[c.playerLegs] == 8840
&& c.playerEquipment[c.playerChest] == 8839
&& c.playerEquipment[c.playerHands] == 8842;
}
}